From 463fb2288d3a133c05edba7e7036d44f6624e754 Mon Sep 17 00:00:00 2001 From: oliskoli Date: Sun, 15 Apr 2007 19:46:40 +0000 Subject: [PATCH] Add new format "g7towin". This format can read data files (.g7t) from G7ToWin. --- gpsbabel/g7towin.c | 541 +++++++++++++++++++++++++++ gpsbabel/reference/expertgps-g7t.txt | 216 +++++++++++ 2 files changed, 757 insertions(+) create mode 100644 gpsbabel/g7towin.c create mode 100644 gpsbabel/reference/expertgps-g7t.txt diff --git a/gpsbabel/g7towin.c b/gpsbabel/g7towin.c new file mode 100644 index 000000000..41609778b --- /dev/null +++ b/gpsbabel/g7towin.c @@ -0,0 +1,541 @@ +/* + + Support for G7ToWin data files (.g7t), + Copyright (C) 2007 Olaf Klein, o.b.klein@gpsbabel.org + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA +*/ + +/* + History: + 04/07/2007: start programming +*/ + +#include "defs.h" +#include "csv_util.h" +#include "garmin_fs.h" +#include "garmin_tables.h" +#include "jeeps/gpsmath.h" +#include "strptime.h" + +#include + +#if CSVFMTS_ENABLED + +#define MYNAME "g7towin" + +#define G7T_HEADER "Version 2:G7T" + +static gbfile *fin; +static grid_type grid; +static int datum; +static gpsdata_type mode; +static double altf; +static int gardown; +static int event_ct; + +static +arglist_t g7towin_args[] = { + ARG_TERMINATOR +}; + +#define WAYPT__OFS 0x00000 +#define TRKPT__OFS 0x01000 + +#define WPT_c0_OFS 0x0c000 +#define WPT_c1_OFS 0x0c100 +#define WPT_c2_OFS 0x0c200 +#define WPT_c3_OFS 0x0c300 +#define WPT_c4_OFS 0x0c400 +#define WPT_c5_OFS 0x0c500 +#define WPT_c6_OFS 0x0c600 +#define WPT_c7_OFS 0x0c700 +#define WPT_c8_OFS 0x0c800 +#define WPT_cA_OFS 0x0cA00 +#define WPT_cB_OFS 0x0cB00 +#define WPT_cC_OFS 0x0cC00 +#define WPT_cD_OFS 0x0cD00 + +static void +parse_line(char *buff, int index, const char *delimiter, waypoint *wpt) +{ + char *cin; + garmin_fs_p gmsd = GMSD_FIND(wpt); + + while ((cin = csv_lineparse(buff, delimiter, "", index++))) { + + buff = NULL; + cin = lrtrim(cin); + + if ((*cin == '\0') || + (strcmp(cin, "INF") == 0) || + (strcmp(cin, "1e25") == 0) || + (strcmp(cin, "1.0e25") == 0)) continue; + + switch(index) { + + int categories, dyn; + struct tm tm; + char *cerr; + + case TRKPT__OFS + 1: + cin += parse_coordinates(cin, datum, grid, + &wpt->latitude, &wpt->longitude, MYNAME); + while (isspace(*cin)) cin++; + + memset(&tm, 0, sizeof(tm)); + cerr = strptime(cin, "%a %b %d %H:%M:%S %Y", &tm); + if (cerr == NULL) { + fatal(MYNAME ": Unable to convert date (%s)!\n", cin); + } + wpt->creation_time = mkgmtime(&tm); + break; + + case WAYPT__OFS + 1: + wpt->description = xstrdup(cin); + break; + + case WAYPT__OFS + 2: + wpt->icon_descr = gt_find_desc_from_icon_number( + atoi(cin), PCX, &dyn); + wpt->wpt_flags.icon_descr_is_dynamic = dyn; + break; + + case WAYPT__OFS + 4: + if (strcmp(cin, "S+C") == 0) { + GMSD_SET(display, gt_display_mode_symbol_and_comment); + } + else if (strcmp(cin, "S") == 0) { + GMSD_SET(display, gt_display_mode_symbol); + } + else if (strcmp(cin, "S+N") == 0) { + GMSD_SET(display, gt_display_mode_symbol_and_name); + } + break; + + case WPT_cA_OFS + 1: + case WPT_c1_OFS + 1: + if (wpt->shortname) xfree(wpt->shortname); + wpt->shortname = xstrdup(cin); + break; + + case WPT_cA_OFS + 4: + case WPT_c4_OFS + 2: + GMSD_SETSTR(city, cin); + break; + + case WPT_cA_OFS + 5: + case WPT_c4_OFS + 3: + GMSD_SETSTR(state, cin); + break; + + case WPT_cA_OFS + 6: + case WPT_c4_OFS + 4: + GMSD_SETSTR(cc, cin); + break; + + case WPT_cB_OFS + 1: + case WPT_c6_OFS + 2: + GMSD_SETSTR(facility, cin); + break; + + case WPT_cB_OFS + 2: + case WPT_c6_OFS + 3: + GMSD_SETSTR(addr, cin); + break; + + case WPT_cB_OFS + 3: /*cross road */ + case WPT_c6_OFS + 4: + GMSD_SETSTR(cross_road, cin); + break; + + case TRKPT__OFS + 2: /* altitude */ + case WPT_cC_OFS + 1: + case WPT_c5_OFS + 1: + case WPT_c8_OFS + 1: + wpt->altitude = altf * atof(cin); + break; + + case TRKPT__OFS + 3: /* depth */ + case WPT_cC_OFS + 2: + case WPT_c5_OFS + 2: + case WPT_c8_OFS + 2: + GMSD_SET(depth, altf * atof(cin)); + break; + + case TRKPT__OFS + 10: /* temperature */ + if (*cin == '|') cin++; /* in track points */ + if (strcmp(cin, "1e25") == 0) break; + if (strcmp(cin, "1.0e25") == 0) break; + /* !!! NO BREAK !!! */ + case WPT_cD_OFS + 1: + case WPT_cB_OFS + 6: + GMSD_SET(temperature, atof(cin)); + break; + + case WAYPT__OFS + 6: /* proximity */ + case WPT_cD_OFS + 2: + GMSD_SET(proximity, atof(cin)); + break; + + case WPT_cB_OFS + 5: + case WPT_cD_OFS + 3: + categories = atoi(cin); + if (categories != 0) + GMSD_SET(category, atoi(cin)); + break; + +#if 0 + +/* currently unused */ + + case TRKPT__OFS + 5: /* distance from previous point */ + case TRKPT__OFS + 6: /* distance from segment start */ + case TRKPT__OFS + 7: /* distance from start */ + case TRKPT__OFS + 8: /* velocity from previous point */ + case TRKPT__OFS + 9: /* time (in seconds) from previous point */ + break; + + case WAYPT__OFS + 3: /* ignore color */ + break; + + case WAYPT__OFS + 5: /* always '0' */ + break; + + case TRKPT__OFS + 4: + if (case_ignore_strcmp(cin, "FT") == 0) ; + else if (case_ignore_strcmp(cin, "M") == 0) ; + else if (case_ignore_strcmp(cin, "SM") == 0) ; + else if (case_ignore_strcmp(cin, "NM") == 0) ; + else if (case_ignore_strcmp(cin, "KM") == 0) ; + break; + + case WPT_cB_OFS + 4: /* unknown (datatype) */ + break; + + case WPT_cC_OFS + 3: /* waypt_class (always FF) */ + break; + + case WPT_cC_OFS + 4: /* class & subclass */ + case WPT_cC_OFS + 5: + case WPT_cC_OFS + 6: + case WPT_cC_OFS + 7: + case WPT_cC_OFS + 8: + case WPT_cC_OFS + 9: + case WPT_cC_OFS + 10: + case WPT_cC_OFS + 11: + case WPT_cC_OFS + 12: + case WPT_cC_OFS + 13: + case WPT_cC_OFS + 14: + case WPT_cC_OFS + 15: + case WPT_cC_OFS + 16: + case WPT_cC_OFS + 17: + case WPT_cC_OFS + 18: + case WPT_cC_OFS + 19: + case WPT_cC_OFS + 20: + case WPT_cC_OFS + 21: + break; + + case WPT_cC_OFS + 22: + /* distance */ + break; +#endif + } + } +} + +static waypoint * +parse_waypt(char *buff) +{ + char *cin, *cerr; + int i; + struct tm tm; + waypoint *wpt; + garmin_fs_p gmsd; + + wpt = waypt_new(); + gmsd = garmin_fs_alloc(-1); + fs_chain_add(&wpt->fs, (format_specific_data *) gmsd); + + if (gardown) + cin = buff + 6; + else + cin = buff + 15; + + while (isspace(*cin)) cin--; + if (cin >= buff) + wpt->shortname = xstrndup(buff, cin - buff + 1); + + if (gardown) + buff += 7; + else + buff += 16; + + buff += parse_coordinates(buff, datum, grid, + &wpt->latitude, &wpt->longitude, MYNAME); + while (isspace(*buff)) buff++; + + memset(&tm, 0, sizeof(tm)); + cerr = strptime(buff, "%a %b %d %H:%M:%S %Y", &tm); + if (cerr == NULL) + fatal(MYNAME ": Unable to convert date (%s)!\n", buff); + wpt->creation_time = mkgmtime(&tm); + + /* go over time stamp */ + i = 5; + while (buff && i) { + i--; + buff = strchr(buff, ' '); + if (buff) buff++; + } + if (gardown && (buff == NULL)) return wpt; + is_fatal((buff == NULL), MYNAME ": Incomplete waypoint line!"); + + while (isspace(*buff)) buff++; + + parse_line(buff, WAYPT__OFS, "^", wpt); + + return wpt; +} + +static waypoint * +parse_trkpt(char *buff) +{ + garmin_fs_p gmsd; + waypoint *wpt; + + wpt = waypt_new(); + gmsd = garmin_fs_alloc(-1); + fs_chain_add(&wpt->fs, (format_specific_data *) gmsd); + + parse_line(buff, TRKPT__OFS, ";", wpt); + + return wpt; +} + +/* + * parse_categories is currently only a dummy procedure. + * w'll need a central storage with binding to the module + * which has established a list of category names. + */ + +static void +parse_categories(char *buff) +{ + char *cin; + int cat = 0; + + while ((cin = csv_lineparse(buff, ",", "", cat++))) { + gbuint16 cx; + + buff = NULL; + + cin = lrtrim(cin); + if (*cin == 0) continue; + + garmin_fs_convert_category(cin, &cx); + } +} + + +/* main functions */ + +static void +rd_init(const char *fname) +{ + fin = gbfopen(fname, "rb", MYNAME); + + gardown = 1; + mode = wptdata; + grid = grid_lat_lon_dmm; + datum = DATUM_WGS84; + altf = 1; + event_ct = 0; +} + +static void +rd_deinit(void) +{ + gbfclose(fin); +} + +static void +data_read(void) +{ + char *buff; + int line = 0; + waypoint *wpt = NULL; + waypoint *prev = NULL; + route_head *head = NULL; + + while ((buff = gbfgetstr(fin))) { + char *cin = buff; + char *cdata; + + line++; + + cin = lrtrim(buff); + if (!*cin) continue; + + cdata = cin+1; + while (! isspace(*cdata)) cdata++; + while (isspace(*cdata)) cdata++; + if (! *cdata) continue; + + switch(*cin) { + + case '#': /* comment */ + break; + + case 'A': + if (case_ignore_strncmp(cdata, "Meter", 5) == 0) + altf = 1.0; + else if (case_ignore_strncmp(cdata, "Feet", 4) == 0) + altf = FEET_TO_METERS(1.0); + break; + + case 'C': /* categories */ + parse_categories(cdata); + break; + + case 'D': + datum = gt_lookup_datum_index(cdata, MYNAME); + break; + + case 'I': /* event point */ + wpt = waypt_new(); + cdata += parse_coordinates(cdata, datum, grid, + &wpt->latitude, &wpt->longitude, MYNAME); + xasprintf(&wpt->shortname, "Event%d", ++event_ct); + while (isspace(*cdata)) cdata++; + if (*cdata == ';') { + int dyn; + + cdata++; + wpt->icon_descr = gt_find_desc_from_icon_number( + atoi(cdata), PCX, &dyn); + wpt->wpt_flags.icon_descr_is_dynamic = dyn; + } + waypt_add(wpt); + break; + + case 'M': + grid = gt_lookup_grid_type(cdata, MYNAME); + break; + + case 'P': /* proximity waypoint */ + case 'W': /* normal waypoint */ + wpt = parse_waypt(cdata); + prev = wpt; + if (wpt) { + if (mode == rtedata) + route_add_wpt(head, wpt); + else + waypt_add(wpt); + } + break; + + case 'c': /* additional lines */ + switch(*(cin+1)) { + int index; + + case 'A': case 'B': + case 'C': case 'D': + + index = WPT_cA_OFS + ((*(cin+1) - 'A') * 256); + parse_line(cdata, index, "|", wpt); + break; + + case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': + + index = WPT_c0_OFS + ((*(cin+1) - '0') * 256); + parse_line(cdata, index, ";", wpt); + break; + + case 'L': + waypt_add_url(wpt, xstrdup(cdata), NULL); + break; + + default: + break; + } + break; + + case 'N': /* track log header */ + mode = trkdata; + head = route_head_alloc(); + cdata = strchr(cdata, '-'); + if (cdata) { + while (isspace(*cdata)) cdata++; + if (*cdata) { + char *s; + s = strrchr(cdata, ','); + if (s) { + *s = '\0'; + s = strrchr(cdata, ','); + if (s) { + *s = '\0'; + head->rte_name = xstrdup(cdata); + } + } + } + } + track_add_head(head); + break; + + case 'R': /* route header */ + mode = rtedata; + head = route_head_alloc(); + cdata += 3; /*skip route number */ + if (*cdata) head->rte_name = xstrdup(cdata); + route_add_head(head); + break; + + case 'T': + wpt = parse_trkpt(cdata); + if (wpt) track_add_wpt(head, wpt); + break; + + case 'V': + if (strcmp(cin, G7T_HEADER) != 0) { + fatal(MYNAME ": Invalid version or invalid file!\n"); + } + gardown = 0; + break; + + default: + break; + } + } +} + +/* --------------------------------------------------------------------------- */ + +ff_vecs_t g7towin_vecs = { + ff_type_file, + { ff_cap_read, ff_cap_read, ff_cap_read }, + rd_init, + NULL, + rd_deinit, + NULL, + data_read, + NULL, + NULL, + g7towin_args, + CET_CHARSET_MS_ANSI, 0 +}; + +#endif /* CSVFMTS_ENABLED */ diff --git a/gpsbabel/reference/expertgps-g7t.txt b/gpsbabel/reference/expertgps-g7t.txt new file mode 100644 index 000000000..2b1591ddf --- /dev/null +++ b/gpsbabel/reference/expertgps-g7t.txt @@ -0,0 +1,216 @@ +Grid Lat/Lon hddd°mm.mmm' +Datum WGS 84 + +Header Name Description Type Position Altitude Depth Proximity Temperature Display Mode Color Symbol Facility City State Country Date Modified Link Categories + +Waypoint 5058ROAD ROAD CROSSING User Waypoint N42 26.400 W71 07.257 54 m Symbol & Name Unknown Waypoint 02/06/2001 00:18:14 +Waypoint 5066 User Waypoint N42 26.333 W71 07.158 45 m Symbol & Name Unknown Crossing 28/11/2001 21:05:28 +Waypoint 5067 User Waypoint N42 26.354 W71 07.183 58 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:55 +Waypoint 5096 User Waypoint N42 26.335 W71 06.970 45 m Symbol & Name Unknown Waypoint 16/11/2001 23:03:38 +Waypoint 5142 User Waypoint N42 26.634 W71 07.324 51 m Symbol & Name Unknown Waypoint 28/11/2001 21:05:28 +Waypoint 5144SUMMIT User Waypoint N42 26.721 W71 07.372 62 m Symbol & Name Unknown Summit 28/11/2001 21:05:28 +Waypoint 5148NANEPA User Waypoint N42 26.986 W71 07.341 120 m Symbol & Name Unknown Waypoint 07/11/2001 23:53:41 +Waypoint 5150TANK WATER TANK User Waypoint N42 26.504 W71 07.302 67 m Symbol & Name Unknown Museum 02/06/2001 00:18:16 +Waypoint 5156 User Waypoint N42 26.838 W71 07.288 128 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:58 +Waypoint 5179DEAD Dead End User Waypoint N42 26.992 W71 07.159 117 m Symbol & Name Unknown Danger Area 02/06/2001 03:26:59 +Waypoint 5224 User Waypoint N42 27.292 W71 07.507 97 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:59 +Waypoint 5229 User Waypoint N42 27.545 W71 07.501 83 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:59 +Waypoint 5236BRIDGE Bridge User Waypoint N42 27.388 W71 07.481 90 m Symbol & Name Unknown Bridge 02/06/2001 03:26:59 +Waypoint 5237 User Waypoint N42 27.419 W71 07.470 83 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:59 +Waypoint 5239ROAD Road User Waypoint N42 27.557 W71 07.476 81 m Symbol & Name Unknown Truck Stop 02/06/2001 03:27:00 +Waypoint 5252PURPLE User Waypoint N42 27.195 W71 07.274 78 m Symbol & Name Unknown Summit 07/11/2001 23:53:41 +Waypoint 5254 User Waypoint N42 27.264 W71 07.261 67 m Symbol & Name Unknown Waypoint 28/11/2001 21:05:28 +Waypoint 5258 User Waypoint N42 27.086 W71 07.306 75 m Symbol & Name Unknown Waypoint 07/11/2001 23:53:41 +Waypoint 5264 User Waypoint N42 27.264 W71 07.241 65 m Symbol & Name Unknown Waypoint 28/11/2001 21:05:28 +Waypoint 526708 User Waypoint N42 27.466 W71 07.264 77 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:00 +Waypoint 526750 User Waypoint N42 27.425 W71 07.220 75 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:00 +Waypoint 5267OBSTAC User Waypoint N42 27.443 W71 07.192 74 m Symbol & Name Unknown Amusement Park 02/06/2001 03:27:00 +Waypoint 527614 User Waypoint N42 27.395 W71 07.182 79 m Symbol & Name Unknown Waypoint 07/11/2001 23:53:41 +Waypoint 527631 User Waypoint N42 27.375 W71 07.163 79 m Symbol & Name Unknown Waypoint 07/11/2001 23:53:41 +Waypoint 5278 User Waypoint N42 27.489 W71 07.150 68 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:00 +Waypoint 5278ROAD Road User Waypoint N42 27.527 W71 07.141 67 m Symbol & Name Unknown Truck Stop 02/06/2001 03:27:01 +Waypoint 5287WATER Reservoir User Waypoint N42 27.464 W71 07.050 68 m Symbol & Name Unknown Swimming Area 02/06/2001 03:27:01 +Waypoint 5289 User Waypoint N42 27.563 W71 07.063 64 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:01 +Waypoint 5299DEAD Dead End User Waypoint N42 27.578 W71 06.993 69 m Symbol & Name Unknown Danger Area 02/06/2001 03:27:01 +Waypoint 5374FIRE User Waypoint N42 27.851 W71 07.191 53 m Symbol & Name Unknown Waypoint 28/11/2001 21:05:28 +Waypoint 5376 User Waypoint N42 27.939 W71 07.166 56 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:02 +Waypoint 5376BRIDGE Bridge User Waypoint N42 27.945 W71 07.190 55 m Symbol & Name Unknown Bridge 02/06/2001 03:27:01 +Waypoint 5376DEAD Dead End User Waypoint N42 27.929 W71 07.150 57 m Symbol & Name Unknown Danger Area 02/06/2001 03:27:02 +Waypoint 5376STREAM User Waypoint N42 27.955 W71 07.161 65 m Symbol & Name Unknown Bridge 07/11/2001 23:53:41 +Waypoint 6006 User Waypoint N42 26.341 W71 06.869 56 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:55 +Waypoint 6006BLUE User Waypoint N42 26.316 W71 06.890 46 m Symbol & Name Unknown Waypoint 28/11/2001 21:05:28 +Waypoint 6014MEADOW User Waypoint N42 26.205 W71 06.795 38 m Symbol & Name Unknown Waypoint 28/11/2001 21:05:28 +Waypoint 6016 Bike Loop Connector User Waypoint N42 26.320 W71 06.846 43 m Symbol & Name Unknown Waypoint 28/11/2001 21:05:28 +Waypoint 6029 User Waypoint N42 26.505 W71 06.795 56 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:55 +Waypoint 6042CROSS Crossing User Waypoint N42 26.128 W71 06.581 45 m Symbol & Name Unknown Crossing 02/06/2001 03:27:05 +Waypoint 6053 User Waypoint N42 26.175 W71 06.546 50 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:05 +Waypoint 6066 User Waypoint N42 26.355 W71 06.452 26 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:57 +Waypoint 6067 User Waypoint N42 26.386 W71 06.457 34 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:57 +Waypoint 6071 User Waypoint N42 26.086 W71 06.354 30 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:57 +Waypoint 6073 User Waypoint N42 25.998 W71 06.397 15 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:56 +Waypoint 6077LOGS Log Crossing User Waypoint N42 26.370 W71 06.395 32 m Symbol & Name Unknown Amusement Park 02/06/2001 00:18:16 +Waypoint 6084 User Waypoint N42 26.240 W71 06.288 38 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:57 +Waypoint 6121DEAD Dead End User Waypoint N42 26.586 W71 06.762 56 m Symbol & Name Unknown Danger Area 02/06/2001 03:26:57 +Waypoint 6130 User Waypoint N42 26.532 W71 06.660 64 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:55 +Waypoint 6131 User Waypoint N42 26.579 W71 06.688 64 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:58 +Waypoint 6153 User Waypoint N42 26.686 W71 06.535 63 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:05 +Waypoint 6155DEAD Dead End User Waypoint N42 26.808 W71 06.529 61 m Symbol & Name Unknown Danger Area 02/06/2001 03:27:04 +Waypoint 6171 User Waypoint N42 26.615 W71 06.380 55 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:05 +Waypoint 6176 User Waypoint N42 26.868 W71 06.399 62 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:04 +Waypoint 6177 User Waypoint N42 26.907 W71 06.371 62 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:04 +Waypoint 6181CROSS Crossing User Waypoint N42 26.580 W71 06.354 53 m Symbol & Name Unknown Crossing 02/06/2001 03:27:05 +Waypoint 6272 User Waypoint N42 27.205 W71 06.409 70 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:55 +Waypoint 6278 User Waypoint N42 27.498 W71 06.408 70 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:04 +Waypoint 6280 User Waypoint N42 27.086 W71 06.326 58 m Symbol & Name Unknown Waypoint 16/11/2001 23:03:38 +Waypoint 6283 User Waypoint N42 27.231 W71 06.314 67 m Symbol & Name Unknown Waypoint 16/11/2001 23:03:38 +Waypoint 6289 User Waypoint N42 27.599 W71 06.372 73 m Symbol & Name Unknown Waypoint 16/11/2001 23:03:38 +Waypoint 6297 User Waypoint N42 27.457 W71 06.309 73 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:04 +Waypoint 6328 User Waypoint N42 28.027 W71 06.816 54 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:02 +Waypoint 6353DEAD Dead End User Waypoint N42 27.766 W71 06.601 47 m Symbol & Name Unknown Danger Area 02/06/2001 03:27:03 +Waypoint 6354 User Waypoint N42 27.852 W71 06.593 44 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:03 +Waypoint 635722 User Waypoint N42 27.988 W71 06.606 49 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:02 +Waypoint 635783 User Waypoint N42 27.993 W71 06.566 49 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:02 +Waypoint 6373 User Waypoint N42 27.810 W71 06.429 62 m Symbol & Name Unknown Waypoint 02/06/2001 03:27:03 +Waypoint 6634 User Waypoint N42 24.063 W71 06.616 4 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:56 +Waypoint 6979 User Waypoint N42 25.957 W71 06.393 13 m Symbol & Name Unknown Waypoint 02/06/2001 03:26:56 +Waypoint 6997 User Waypoint N42 25.862 W71 06.475 34 m Symbol & Name Unknown Waypoint 16/11/2001 23:03:38 +Waypoint BEAR HILL BEAR HILL TOWER User Waypoint N42 27.941 W71 06.443 88 m Symbol & Name Unknown Tall Tower 02/06/2001 03:27:03 +Waypoint BELLEVUE User Waypoint N42 25.857 W71 06.459 23 m Symbol & Name Unknown Parking Area 02/06/2001 00:18:15 +Waypoint DARKHOLLPO Dark Hollow Pond User Waypoint N42 27.511 W71 06.220 Symbol & Name Unknown Fishing Area 16/07/2005 20:53:40 +Waypoint GATE14 Gate 14 User Waypoint N42 27.072 W71 07.598 111 m Symbol & Name Unknown Truck Stop 02/06/2001 03:26:59 +Waypoint GATE16 Gate 16 User Waypoint N42 27.510 W71 07.326 78 m Symbol & Name Unknown Truck Stop 02/06/2001 03:27:00 +Waypoint GATE17 Gate 17 User Waypoint N42 27.562 W71 07.156 66 m Symbol & Name Unknown Truck Stop 02/06/2001 03:27:01 +Waypoint GATE19 Gate 19 User Waypoint N42 27.981 W71 07.156 57 m Symbol & Name Unknown Truck Stop 02/06/2001 03:27:02 +Waypoint GATE21 Gate 21 User Waypoint N42 28.119 W71 06.463 49 m Symbol & Name Unknown Truck Stop 02/06/2001 03:27:03 +Waypoint GATE24 Gate 24 User Waypoint N42 27.403 W71 06.180 81 m Symbol & Name Unknown Truck Stop 02/06/2001 03:27:03 +Waypoint GATE5 Gate 5 User Waypoint N42 25.851 W71 06.463 22 m Symbol & Name Unknown Truck Stop 28/11/2001 21:05:28 +Waypoint GATE6 User Waypoint N42 25.874 W71 06.556 27 m Symbol & Name Unknown Waypoint 07/11/2001 23:53:41 +Waypoint PANTHRCAVE User Waypoint N42 26.099 W71 06.598 45 m Symbol & Name Unknown Tunnel 07/11/2001 23:53:41 +Waypoint SHEEPFOLD Sheepfold Parking Lot User Waypoint N42 27.205 W71 06.408 70 m Symbol & Name Unknown Parking Area 02/06/2001 00:18:13 +Waypoint SOAPBOX Soap Box Derby Track User Waypoint N42 27.357 W71 06.451 64 m Symbol & Name Unknown Cemetery 02/06/2001 03:27:04 + + +Header Name Length Course Waypoints Link + +Route BELLEVUE 11.2 km 0° true 46 waypoints + +Header Waypoint Name Distance Leg Length Course + +Route Waypoint BELLEVUE 0 m +Route Waypoint GATE6 136 m 136 m 284° true +Route Waypoint PANTHRCAVE 556 m 420 m 352° true +Route Waypoint 6014MEADOW 891 m 334 m 306° true +Route Waypoint 6006 1.2 km 271 m 338° true +Route Waypoint 6006BLUE 1.2 km 55 m 211° true +Route Waypoint 5096 1.3 km 116 m 288° true +Route Waypoint 5066 1.6 km 257 m 269° true +Route Waypoint 5067 1.6 km 52 m 319° true +Route Waypoint 5058ROAD 1.8 km 133 m 310° true +Route Waypoint 5150TANK 2.0 km 203 m 342° true +Route Waypoint 5142 2.2 km 244 m 353° true +Route Waypoint 5144SUMMIT 2.4 km 175 m 338° true +Route Waypoint 5156 2.6 km 245 m 28° true +Route Waypoint 5148NANEPA 2.9 km 284 m 345° true +Route Waypoint 5258 3.1 km 193 m 14° true +Route Waypoint 5252PURPLE 3.3 km 207 m 12° true +Route Waypoint 527631 3.7 km 367 m 25° true +Route Waypoint 527614 3.7 km 46 m 325° true +Route Waypoint 5267OBSTAC 3.8 km 90 m 351° true +Route Waypoint 5278 3.9 km 103 m 35° true +Route Waypoint 5289 4.1 km 181 m 41° true +Route Waypoint 5374FIRE 4.7 km 563 m 342° true +Route Waypoint 5376 4.8 km 167 m 12° true +Route Waypoint 5376STREAM 4.9 km 30 m 11° true +Route Waypoint 6328 5.4 km 491 m 74° true +Route Waypoint 635722 5.7 km 297 m 104° true +Route Waypoint 635783 5.7 km 55 m 79° true +Route Waypoint 6373 6.1 km 389 m 151° true +Route Waypoint BEAR HILL 6.3 km 245 m 355° true +Route Waypoint 6289 7.0 km 642 m 171° true +Route Waypoint 6297 7.3 km 278 m 162° true +Route Waypoint 6283 7.7 km 420 m 181° true +Route Waypoint 6280 8.0 km 269 m 184° true +Route Waypoint 6177 8.3 km 338 m 190° true +Route Waypoint 6176 8.4 km 81 m 208° true +Route Waypoint 6153 8.8 km 385 m 209° true +Route Waypoint 6171 9.0 km 249 m 122° true +Route Waypoint 6131 9.4 km 428 m 261° true +Route Waypoint 6130 9.5 km 95 m 156° true +Route Waypoint 6029 9.7 km 191 m 255° true +Route Waypoint 6006 10.0 km 321 m 198° true +Route Waypoint 6014MEADOW 10.3 km 271 m 158° true +Route Waypoint PANTHRCAVE 10.7 km 334 m 126° true +Route Waypoint GATE6 11.1 km 420 m 172° true +Route Waypoint BELLEVUE 11.2 km 136 m 104° true + + +Header Name Start Time Elapsed Time Length Average Speed Link + +Track - Trk from .gpx file 25/05/2002 17:06:21 1:59:36 7.7 km 4 kph + +Header Position Time Altitude Depth Leg Length Leg Time Leg Speed Leg Course + +Trackpoint N30 03.731 W91 36.620 25/05/2002 17:06:21 1 m 0.0 m +Trackpoint N30 03.767 W91 36.633 25/05/2002 17:09:55 0.0 m 70 m 0:03:34 1.2 kph 343° true +Trackpoint N30 03.762 W91 36.495 25/05/2002 17:12:00 0.0 m 222 m 0:02:05 6 kph 92° true +Trackpoint N30 03.740 W91 36.442 25/05/2002 17:12:48 0.0 m 94 m 0:00:48 7 kph 116° true +Trackpoint N30 03.692 W91 36.316 25/05/2002 17:14:41 0.0 m 221 m 0:01:53 7 kph 114° true +Trackpoint N30 03.587 W91 35.963 25/05/2002 17:17:16 0.0 m 599 m 0:02:35 14 kph 109° true +Trackpoint N30 03.468 W91 35.800 25/05/2002 17:17:46 0.0 m 342 m 0:00:30 41 kph 130° true +Trackpoint N30 03.323 W91 35.693 25/05/2002 17:18:20 0.0 m 319 m 0:00:34 34 kph 147° true +Trackpoint N30 03.233 W91 35.556 25/05/2002 17:19:01 0.0 m 276 m 0:00:41 24 kph 127° true +Trackpoint N30 02.984 W91 35.384 25/05/2002 17:20:46 0.0 m 538 m 0:01:45 18 kph 149° true +Trackpoint N30 02.941 W91 35.392 25/05/2002 17:21:10 0.0 m 81 m 0:00:24 12 kph 189° true +Trackpoint N30 02.928 W91 35.575 25/05/2002 17:21:51 0.0 m 295 m 0:00:41 26 kph 265° true +Trackpoint N30 02.774 W91 35.786 25/05/2002 17:22:35 0.0 m 443 m 0:00:44 36 kph 230° true +Trackpoint N30 02.731 W91 35.922 25/05/2002 17:23:08 0.0 m 233 m 0:00:33 25 kph 250° true +Trackpoint N30 02.838 W91 36.015 25/05/2002 18:04:23 0.0 m 248 m 0:41:15 0.4 kph 323° true +Trackpoint N30 02.820 W91 35.977 25/05/2002 18:06:04 2 m 0.0 m 70 m 0:01:41 2 kph 119° true +Trackpoint N30 02.786 W91 35.967 25/05/2002 18:07:06 0.0 m 65 m 0:01:02 4 kph 166° true +Trackpoint N30 02.772 W91 35.936 25/05/2002 18:08:18 1 m 0.0 m 56 m 0:01:12 3 kph 117° true +Trackpoint N30 02.782 W91 35.863 25/05/2002 18:10:20 0.0 m 119 m 0:02:02 4 kph 81° true +Trackpoint N30 02.781 W91 35.829 25/05/2002 18:11:09 0.0 m 55 m 0:00:49 4 kph 92° true +Trackpoint N30 02.807 W91 35.779 25/05/2002 18:12:18 0.0 m 94 m 0:01:09 5 kph 59° true +Trackpoint N30 02.847 W91 35.711 25/05/2002 18:14:22 0.0 m 132 m 0:02:04 4 kph 56° true +Trackpoint N30 02.868 W91 35.685 25/05/2002 18:15:04 2 m 0.0 m 57 m 0:00:42 5 kph 47° true +Trackpoint N30 02.895 W91 35.644 25/05/2002 18:16:14 1 m 0.0 m 83 m 0:01:10 4 kph 53° true +Trackpoint N30 02.921 W91 35.627 25/05/2002 18:17:01 1 m 0.0 m 55 m 0:00:47 4 kph 30° true +Trackpoint N30 02.961 W91 35.630 25/05/2002 18:18:07 0.0 m 74 m 0:01:06 4 kph 356° true +Trackpoint N30 03.019 W91 35.638 25/05/2002 18:19:51 2 m 0.0 m 108 m 0:01:44 4 kph 353° true +Trackpoint N30 03.047 W91 35.646 25/05/2002 18:20:39 0.0 m 53 m 0:00:48 4 kph 346° true +Trackpoint N30 03.074 W91 35.661 25/05/2002 18:21:24 0.0 m 56 m 0:00:45 4 kph 334° true +Trackpoint N30 03.108 W91 35.661 25/05/2002 18:22:17 0.0 m 63 m 0:00:53 4 kph 0° true +Trackpoint N30 03.133 W91 35.679 25/05/2002 18:23:18 0.0 m 55 m 0:01:01 3 kph 328° true +Trackpoint N30 03.181 W91 35.680 25/05/2002 18:24:37 0.0 m 89 m 0:01:19 4 kph 359° true +Trackpoint N30 03.292 W91 35.711 25/05/2002 18:28:13 6 m 0.0 m 212 m 0:03:36 4 kph 346° true +Trackpoint N30 03.224 W91 35.695 25/05/2002 18:31:36 2 m 0.0 m 129 m 0:03:23 2 kph 168° true +Trackpoint N30 03.191 W91 35.686 25/05/2002 18:32:56 0.0 m 63 m 0:01:20 3 kph 167° true +Trackpoint N30 03.158 W91 35.689 25/05/2002 18:34:02 0.0 m 61 m 0:01:06 3 kph 184° true +Trackpoint N30 03.147 W91 35.725 25/05/2002 18:36:03 0.0 m 61 m 0:02:01 2 kph 251° true +Trackpoint N30 03.149 W91 35.757 25/05/2002 18:36:48 0.0 m 52 m 0:00:45 4 kph 274° true +Trackpoint N30 03.159 W91 35.806 25/05/2002 18:37:52 1 m 0.0 m 81 m 0:01:04 5 kph 283° true +Trackpoint N30 03.188 W91 35.870 25/05/2002 18:39:18 0.0 m 116 m 0:01:26 5 kph 298° true +Trackpoint N30 03.217 W91 35.877 25/05/2002 18:40:15 0.0 m 55 m 0:00:57 3 kph 348° true +Trackpoint N30 03.238 W91 35.865 25/05/2002 18:41:25 6 m 0.0 m 43 m 0:01:10 2 kph 26° true +Trackpoint N30 03.217 W91 35.884 25/05/2002 18:42:37 0.0 m 49 m 0:01:12 2 kph 218° true +Trackpoint N30 03.192 W91 35.874 25/05/2002 18:44:01 0.0 m 49 m 0:01:24 2 kph 161° true +Trackpoint N30 03.169 W91 35.850 25/05/2002 18:45:53 0.0 m 57 m 0:01:52 2 kph 138° true +Trackpoint N30 03.154 W91 35.815 25/05/2002 18:46:54 0.0 m 63 m 0:01:01 4 kph 116° true +Trackpoint N30 03.140 W91 35.785 25/05/2002 18:47:42 0.0 m 55 m 0:00:48 4 kph 118° true +Trackpoint N30 03.135 W91 35.740 25/05/2002 18:48:41 0.0 m 73 m 0:00:59 4 kph 97° true +Trackpoint N30 03.133 W91 35.700 25/05/2002 18:49:52 0.0 m 64 m 0:01:11 3 kph 93° true +Trackpoint N30 03.113 W91 35.681 25/05/2002 18:50:49 0.0 m 48 m 0:00:57 3 kph 141° true +Trackpoint N30 03.063 W91 35.663 25/05/2002 18:52:14 0.0 m 97 m 0:01:25 4 kph 163° true +Trackpoint N30 03.034 W91 35.653 25/05/2002 18:52:56 0.0 m 56 m 0:00:42 5 kph 163° true +Trackpoint N30 03.011 W91 35.645 25/05/2002 18:53:38 0.0 m 45 m 0:00:42 4 kph 163° true +Trackpoint N30 02.946 W91 35.622 25/05/2002 18:55:11 0.0 m 126 m 0:01:33 5 kph 163° true +Trackpoint N30 02.907 W91 35.654 25/05/2002 18:56:32 0.0 m 89 m 0:01:21 4 kph 215° true +Trackpoint N30 02.885 W91 35.684 25/05/2002 18:57:24 0.0 m 63 m 0:00:52 4 kph 230° true +Trackpoint N30 02.850 W91 35.726 25/05/2002 18:58:40 7 m 0.0 m 94 m 0:01:16 4 kph 226° true +Trackpoint N30 02.824 W91 35.759 25/05/2002 18:59:28 0.0 m 72 m 0:00:48 5 kph 228° true +Trackpoint N30 02.798 W91 35.795 25/05/2002 19:00:22 0.0 m 75 m 0:00:54 5 kph 230° true +Trackpoint N30 02.784 W91 35.858 25/05/2002 19:01:41 0.0 m 105 m 0:01:19 5 kph 256° true +Trackpoint N30 02.774 W91 35.907 25/05/2002 19:02:48 0.0 m 81 m 0:01:07 4 kph 257° true +Trackpoint N30 02.779 W91 35.937 25/05/2002 19:03:43 0.0 m 49 m 0:00:55 3 kph 281° true +Trackpoint N30 02.807 W91 35.956 25/05/2002 19:04:49 0.0 m 60 m 0:01:06 3 kph 330° true +Trackpoint N30 02.828 W91 35.979 25/05/2002 19:05:57 0.0 m 54 m 0:01:08 3 kph 317° true -- 2.30.2